The inventive concept relates to flash memory techniques, and more particularly, to a method of adjusting a read voltage based on the state of data programmed in a flash memory device, and a method of reading data from the flash memory device by using the same.
In general, flash memory devices may be classified as a single-level cell (SLC) flash memory device or a multi-level cell (MLC) flash memory device, according to the number of data bits programmed in one memory cell. The SLC flash memory device has two distributions of threshold voltages of cells, and the M-bit MLC flash memory device has 2M distributions of threshold voltages of cells. Here, “M” is an integer equal to or greater than “2.” However, a distribution of threshold voltages of a programmed memory cell may vary due to various causes. Thus, data programmed in the memory cell may be different from data read from the memory cell.